﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;

namespace SF.WebClient
{
    /// <summary>
    /// 对DataGrid的data的json数据进行反序列化处理的绑定类
    /// 处理rows时，返回DataTable
    /// </summary>
    public class DatagridRowsJsonBinder : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            //从请求中获取提交的参数数据 
            var json = controllerContext.HttpContext.Request.Form[bindingContext.ModelName] as string;
            //提交参数是数组 传入的rows和columns都是数组，故不做对象处理
            if (json.StartsWith("[") && json.EndsWith("]"))
            {
                if (json.StartsWith("[[") && json.EndsWith("]]"))
                {
                    //处理columns
                }
                else
                {
                    //处理rows，返回DataTable
                    return SF.Utilities.Serialization.DeserializeJsToDataTable(json);
                }
            }
            return null;
        }
    }
}